<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>fof2</title>
    <link rel="stylesheet" type="text/css" href="csound.css" />
    <meta name="generator" content="DocBook XSL Stylesheets V1.78.1" />
    <link rel="home" href="index.html" title="The Canonical Csound Reference Manual" />
    <link rel="up" href="OpcodesTop.html" title="Orchestra Opcodes and Operators" />
    <link rel="prev" href="fof.html" title="fof" />
    <link rel="next" href="fofilter.html" title="fofilter" />
  </head>
  <body>
    <div class="navheader">
      <table width="100%" summary="Navigation header">
        <tr>
          <th colspan="3" align="center">fof2</th>
        </tr>
        <tr>
          <td width="20%" align="left"><a accesskey="p" href="fof.html">Prev</a> </td>
          <th width="60%" align="center">Orchestra Opcodes and Operators</th>
          <td width="20%" align="right"> <a accesskey="n" href="fofilter.html">Next</a></td>
        </tr>
      </table>
      <hr />
    </div>
    <div class="refentry">
      <a id="fof2"></a>
      <div class="titlepage"></div>
      <a id="IndexFof2" class="indexterm"></a>
      <div class="refnamediv">
        <h2>
          <span class="refentrytitle">fof2</span>
        </h2>
        <p>fof2 — 
      Produces sinusoid bursts including k-rate incremental indexing with each successive burst.
    </p>
      </div>
      <div class="refsect1">
        <a id="idp110112768"></a>
        <h2>Description</h2>
        <p>
      Audio output is a succession of sinusoid bursts initiated at frequency <span class="emphasis"><em>xfund</em></span> with a spectral peak at <span class="emphasis"><em>xform</em></span>. For <span class="emphasis"><em>xfund</em></span> above 25 Hz these bursts produce a speech-like formant with spectral characteristics determined by the k-input parameters. For lower fundamentals this generator provides a special form of granular synthesis.
    </p>
        <p>
      <span class="emphasis"><em>fof2</em></span> implements k-rate incremental indexing into <span class="emphasis"><em>ifna</em></span> function with each successive burst.
    </p>
      </div>
      <div class="refsect1">
        <a id="idp110116832"></a>
        <h2>Syntax</h2>
        <pre class="synopsis">ares <span class="command"><strong>fof2</strong></span> xamp, xfund, xform, koct, kband, kris, kdur, kdec, iolaps, \
      ifna, ifnb, itotdur, kphs, kgliss [, iskip]</pre>
      </div>
      <div class="refsect1">
        <a id="idp110119136"></a>
        <h2>Initialization</h2>
        <p>
      <span class="emphasis"><em>iolaps</em></span> -- number of preallocated spaces needed to hold overlapping burst data. Overlaps are frequency dependent, and the space required depends on the maximum value of <span class="emphasis"><em>xfund * kdur</em></span>. Can be over-estimated at no computation cost. Uses less than 50 bytes of memory per <span class="emphasis"><em>iolap</em></span>.
    </p>
        <p>
      <span class="emphasis"><em>ifna, ifnb</em></span> -- table numbers of two stored functions. The first is a sine table for sineburst synthesis (size of at least 4096 recommended). The second is a rise shape, used forwards and backwards to shape the sineburst rise and decay; this may be linear (<a class="link" href="GEN07.html" title="GEN07"><em class="citetitle">GEN07</em></a>) or perhaps a sigmoid (<a class="link" href="GEN19.html" title="GEN19"><em class="citetitle">GEN19</em></a>).
    </p>
        <p>
      <span class="emphasis"><em>itotdur</em></span> -- total time during which this <span class="emphasis"><em>fof</em></span> will be active. Normally set to p3. No new sineburst is created if it cannot complete its <span class="emphasis"><em>kdur</em></span> within the remaining <span class="emphasis"><em>itotdur</em></span>.
    </p>
        <p>
      <span class="emphasis"><em>iskip</em></span> (optional, default=0) -- If non-zero, skip initialization (allows legato use).
    </p>
      </div>
      <div class="refsect1">
        <a id="idp110128000"></a>
        <h2>Performance</h2>
        <p>
      <span class="emphasis"><em>xamp</em></span> -- peak amplitude of each sineburst, observed at the true end of its rise pattern. The rise may exceed this value given a large bandwidth (say, Q &lt; 10) and/or when the bursts are overlapping.
    </p>
        <p>
      <span class="emphasis"><em>xfund</em></span> -- the fundamental frequency (in Hertz) of the impulses that create new sinebursts.
    </p>
        <p>
      <span class="emphasis"><em>xform</em></span> -- the formant frequency, i.e. freq of the sinusoid burst induced by each <span class="emphasis"><em>xfund</em></span> impulse. This frequency can be fixed for each burst or can vary continuously (see <span class="emphasis"><em>ifmode</em></span>).
    </p>
        <p>
      <span class="emphasis"><em>koct</em></span> -- octaviation index, normally zero. If greater than zero, lowers the effective <span class="emphasis"><em>xfund</em></span> frequency by attenuating odd-numbered sinebursts. Whole numbers are full octaves, fractions transitional.
    </p>
        <p>
      <span class="emphasis"><em>kband</em></span> -- the formant bandwidth (at -6dB), expressed in Hz. The bandwidth determines the rate of exponential decay throughout the sineburst, before the enveloping described below is applied.
    </p>
        <p>
      <span class="emphasis"><em>kris, kdur, kdec</em></span> -- rise, overall duration, and decay times (in seconds) of the sinusoid burst. These values apply an enveloped duration to each burst, in similar fashion to a Csound <span class="emphasis"><em>linen</em></span> generator but with rise and decay shapes derived from the <span class="emphasis"><em>ifnb</em></span> input. <span class="emphasis"><em>kris</em></span> inversely determines the skirtwidth (at -40 dB) of the induced formant region. <span class="emphasis"><em>kdur</em></span> affects the density of sineburst overlaps, and thus the speed of computation. Typical values for vocal imitation are .003,.02,.007.
    </p>
        <p>
      <span class="emphasis"><em>kphs</em></span> -- allows k-rate indexing of function table <span class="emphasis"><em>ifna</em></span> with each successive burst, making it suitable for time-warping applications. Values of <span class="emphasis"><em>kphs</em></span> are normalized from 0 to 1, 1 being the end of the function table <span class="emphasis"><em>ifna</em></span>. 
    </p>
        <p>
      <span class="emphasis"><em>kgliss</em></span> -- sets the end pitch of each grain relative to the initial pitch, in octaves. Thus <span class="emphasis"><em>kgliss</em></span> = 2 means that the grain ends two octaves above its initial pitch, while <span class="emphasis"><em>kgliss</em></span> = -3/4 has the grain ending a major sixth below. Each 1/12 added to <span class="emphasis"><em>kgliss</em></span> raises the ending frequency one half-step.  If you want no glissando, set <span class="emphasis"><em>kgliss</em></span> to 0.
    </p>
        <p>
      Csound's <a class="link" href="fof.html" title="fof"><em class="citetitle">fof</em></a> generator is loosely based on Michael Clarke's C-coding of IRCAM's <span class="emphasis"><em>CHANT</em></span> program (Xavier Rodet et al.). Each <span class="emphasis"><em>fof</em></span> produces a single formant, and the output of four or more of these can be summed to produce a rich vocal imitation. <span class="emphasis"><em>fof</em></span> synthesis is a special form of granular synthesis, and this implementation aids transformation between vocal imitation and granular textures. Computation speed depends on <span class="emphasis"><em>kdur, xfund</em></span>, and the density of any overlaps.
    </p>
        <div class="note" style="margin-left: 0.5in; margin-right: 0.5in;">
          <table border="0" summary="Note">
            <tr>
              <td rowspan="2" align="center" valign="top" width="25">
                <img alt="[Note]" src="images/note.png" />
              </td>
              <th align="left">Note</th>
            </tr>
            <tr>
              <td align="left" valign="top">
                <p>The ending frequency of any grain is equal to <span class="emphasis"><em>kform</em></span> * (2 ^ <span class="emphasis"><em>kgliss</em></span>), so setting <span class="emphasis"><em>kgliss</em></span> too high may result in aliasing.  For example, <span class="emphasis"><em>kform</em></span> = 3000 and <span class="emphasis"><em>kgliss</em></span> = 3 places the ending frequency over the Nyquist if <span class="emphasis"><em>sr</em></span> = 44100.  It is a good idea to scale <span class="emphasis"><em>kgliss</em></span> accordingly.</p>
              </td>
            </tr>
          </table>
        </div>
      </div>
      <div class="refsect1">
        <a id="idp110150672"></a>
        <h2>Examples</h2>
        <p>
      Here is an example of the fof2 opcode. It uses the file <a class="ulink" href="examples/fof2.csd" target="_top"><em class="citetitle">fof2.csd</em></a>.

      </p>
        <div class="example">
          <a id="idp110152528"></a>
          <p class="title">
            <strong>Example 307. Example of the fof2 opcode.</strong>
          </p>
          <div class="example-contents">
            <p>See the sections <a class="link" href="UsingRealTime.html" title="Real-Time Audio"><em class="citetitle">Real-time Audio</em></a> and <a class="link" href="CommandFlags.html" title="Csound command line"><em class="citetitle">Command Line Flags</em></a> for more information on using command line flags.</p>
            <pre class="programlisting">
<span class="csdtag">&lt;CsoundSynthesizer&gt;</span>
<span class="csdtag">&lt;CsOptions&gt;</span>
<span class="comment">; Select audio/midi flags here according to platform</span>
<span class="comment">; Audio out   Audio in</span>
-odac           -iadc    <span class="comment">;;;RT audio I/O</span>
<span class="comment">; For Non-realtime ouput leave only the line below:</span>
<span class="comment">; -o fof2.wav -W ;;; for file output any platform</span>
<span class="csdtag">&lt;/CsOptions&gt;</span>
<span class="csdtag">&lt;CsInstruments&gt;</span>

<span class="ohdr">sr</span> <span class="op">=</span> 44100
<span class="ohdr">ksmps</span> <span class="op">=</span> 128
<span class="ohdr">nchnls</span> <span class="op">=</span> 2

<span class="comment">;By Andres Cabrera 2007</span>

    <span class="oblock">instr</span> 1            <span class="comment">;table-lookup vocal synthesis</span>

kris <span class="opc">init</span> p12
kdur <span class="opc">init</span> p13
kdec <span class="opc">init</span> p14

iolaps <span class="opc">init</span> p15

ifna <span class="opc">init</span> 1  <span class="comment">; Sine wave</span>
ifnb <span class="opc">init</span> 2  <span class="comment">; Straight line rise shape</span>

itotdur <span class="opc">init</span> p3

kphs <span class="opc">init</span> 0  <span class="comment">; No phase modulation (constant kphs)</span>


kfund <span class="opc">line</span> p4, p3, p5
kform <span class="opc">line</span> p6, p3, p7
koct <span class="opc">line</span> p8, p3, p9
kband <span class="opc">line</span> p10, p3, p11
kgliss <span class="opc">line</span> p16, p3, p17

kenv <span class="opc">linen</span> 5000, 0.03, p3, 0.03  <span class="comment">;to avoid clicking</span>


aout    <span class="opc">fof2</span>    kenv, kfund, kform, koct, kband, kris, kdur, kdec, iolaps, \
      ifna, ifnb, itotdur, kphs, kgliss


    <span class="opc">outs</span>    aout, aout
    <span class="oblock">endin</span>

<span class="csdtag">&lt;/CsInstruments&gt;</span>
<span class="csdtag">&lt;CsScore&gt;</span>
<span class="stamnt">f</span>1 0 8192 10 1
<span class="stamnt">f</span>2 0 4096 7 0 4096 1

<span class="comment">;              kfund1  kfund2  kform1  kform2  koct1  koct2  kband1 kband2 kris  kdur  kdec  iolaps  kgliss1 kgliss2</span>
<span class="stamnt">i</span>1    0    4    220     220      510     510       0      0      30   30   0.01  0.03  0.01   20       1        1
<span class="stamnt">i</span>1    +    .    220     220      510     910       0      0      30   30   0.01  0.03  0.01   20       1        1
<span class="stamnt">i</span>1    +    .    220     220      510     510       0      0     100   30   0.01  0.03  0.01   20       1        1
<span class="stamnt">i</span>1    +    .    220     220      510     510       0      1      30   30   0.01  0.03  0.01   20       1        1
<span class="stamnt">i</span>1    +    .    220     220      510     510       0      0      30   30   0.01  0.03  0.01   20       1        2
<span class="stamnt">i</span>1    +    .    220     220      510     510       0      0      30   30   0.01  0.03  0.01   20       0.5      1
<span class="stamnt">i</span>1    +    .    220     220      510     510       0      0      30   30   0.01  0.05  0.01   100      1        1
<span class="stamnt">i</span>1    +    .    220     440      510     510       0      0      30   30   0.01  0.05  0.01   100      1        1

<span class="stamnt">e</span>

<span class="csdtag">&lt;/CsScore&gt;</span>
<span class="csdtag">&lt;/CsoundSynthesizer&gt;</span>
</pre>
          </div>
        </div>
        <p><br class="example-break" />
    </p>
        <p>
      Here is another example of the fof2 opcode, which generates vowel tones using formants generated by fof2 coinciding with values from the <a class="link" href="MiscFormants.html" title="Appendix D. Formant Values"><em class="citetitle">Formant Values</em></a> appendix. It uses the file <a class="ulink" href="examples/fof2-2.csd" target="_top"><em class="citetitle">fof2-2.csd</em></a>.

      </p>
        <div class="example">
          <a id="idp110158864"></a>
          <p class="title">
            <strong>Example 308. Example of the fof2 opcode to produce vowel sounds.</strong>
          </p>
          <div class="example-contents">
            <pre class="programlisting">
<span class="csdtag">&lt;CsoundSynthesizer&gt;</span>
<span class="csdtag">&lt;CsOptions&gt;</span>
<span class="comment">; Select audio/midi flags here according to platform</span>
<span class="comment">; Audio out   Audio in</span>
-odac           -iadc    <span class="comment">;;;RT audio I/O</span>
<span class="comment">; For Non-realtime ouput leave only the line below:</span>
<span class="comment">; -o fof2.wav -W ;;; for file output any platform</span>
<span class="csdtag">&lt;/CsOptions&gt;</span>
<span class="csdtag">&lt;CsInstruments&gt;</span>

<span class="ohdr">sr</span> <span class="op">=</span> 44100
<span class="ohdr">ksmps</span> <span class="op">=</span> 128
<span class="ohdr">nchnls</span> <span class="op">=</span> 2

<span class="comment">; Example by Chuckk Hubbard 2007</span>

    <span class="oblock">instr</span> 1            <span class="comment">;table-lookup vocal synthesis</span>

iolaps    <span class="op">=</span>    120
ifna    <span class="op">=</span>    1        <span class="comment">;f1 - sine wave</span>
ifnb    <span class="op">=</span>    2        <span class="comment">;f2 - linear rise shape</span>
itotdur    <span class="op">=</span>    p3
iamp    <span class="op">=</span>    p4 <span class="op">*</span> <span class="ohdr">0dbfs</span>
ifreq1    <span class="op">=</span>    p5        <span class="comment">;starting frequency</span>
ifreq2    <span class="op">=</span>    p6        <span class="comment">;ending frequency</span>

kamp    <span class="opc">linseg</span>    0, .003, iamp, itotdur<span class="op">-</span>.007, iamp, .003, 0, .001, 0
kfund    <span class="opc">expseg</span>    ifreq1, itotdur, ifreq2
koct    <span class="opc">init</span>    0
kris    <span class="opc">init</span>    .003
kdur    <span class="opc">init</span>    .02
kdec    <span class="opc">init</span>    .007
kphs    <span class="opc">init</span>    0
kgliss    <span class="opc">init</span>    0

iforma    <span class="op">=</span>    p7        <span class="comment">;starting spectrum</span>
iformb    <span class="op">=</span>    p8        <span class="comment">;ending spectrum</span>

iform1a    <span class="opc">tab_i</span>    0, iforma        <span class="comment">;read values of 5 formants for 1st spectrum</span>
iform2a    <span class="opc">tab_i</span>    1, iforma
iform3a    <span class="opc">tab_i</span>    2, iforma
iform4a    <span class="opc">tab_i</span>    3, iforma
iform5a    <span class="opc">tab_i</span>    4, iforma
idb1a    <span class="opc">tab_i</span>    5, iforma        <span class="comment">;read decibel levels for same 5 formants</span>
idb2a    <span class="opc">tab_i</span>    6, iforma
idb3a    <span class="opc">tab_i</span>    7, iforma
idb4a    <span class="opc">tab_i</span>    8, iforma
idb5a    <span class="opc">tab_i</span>    9, iforma
iband1a    <span class="opc">tab_i</span>    10, iforma    <span class="comment">;read bandwidths for same 5 formants</span>
iband2a    <span class="opc">tab_i</span>    11, iforma
iband3a    <span class="opc">tab_i</span>    12, iforma
iband4a    <span class="opc">tab_i</span>    13, iforma
iband5a    <span class="opc">tab_i</span>    14, iforma
iamp1a    <span class="op">=</span>    <span class="opc">ampdb</span>(idb1a)    <span class="comment">;convert db to linear multipliers</span>
iamp2a    <span class="op">=</span>    <span class="opc">ampdb</span>(idb2a)
iamp3a    <span class="op">=</span>    <span class="opc">ampdb</span>(idb3a)
iamp4a    <span class="op">=</span>    <span class="opc">ampdb</span>(idb4a)
iamp5a    <span class="op">=</span>    <span class="opc">ampdb</span>(idb5a)

iform1b    <span class="opc">tab_i</span>    0, iformb        <span class="comment">;values of 5 formants for 2nd spectrum</span>
iform2b    <span class="opc">tab_i</span>    1, iformb
iform3b    <span class="opc">tab_i</span>    2, iformb
iform4b    <span class="opc">tab_i</span>    3, iformb
iform5b    <span class="opc">tab_i</span>    4, iformb
idb1b    <span class="opc">tab_i</span>    5, iformb        <span class="comment">;decibel levels for 2nd set of formants</span>
idb2b    <span class="opc">tab_i</span>    6, iformb
idb3b    <span class="opc">tab_i</span>    7, iformb
idb4b    <span class="opc">tab_i</span>    8, iformb
idb5b    <span class="opc">tab_i</span>    9, iformb
iband1b    <span class="opc">tab_i</span>    10, iformb    <span class="comment">;bandwidths for 2nd set of formants</span>
iband2b    <span class="opc">tab_i</span>    11, iformb
iband3b    <span class="opc">tab_i</span>    12, iformb
iband4b    <span class="opc">tab_i</span>    13, iformb
iband5b    <span class="opc">tab_i</span>    14, iformb
iamp1b    <span class="op">=</span>    <span class="opc">ampdb</span>(idb1b)    <span class="comment">;convert db to linear multipliers</span>
iamp2b    <span class="op">=</span>    <span class="opc">ampdb</span>(idb2b)
iamp3b    <span class="op">=</span>    <span class="opc">ampdb</span>(idb3b)
iamp4b    <span class="op">=</span>    <span class="opc">ampdb</span>(idb4b)
iamp5b    <span class="op">=</span>    <span class="opc">ampdb</span>(idb5b)

kform1    <span class="opc">line</span>    iform1a, itotdur, iform1b    <span class="comment">;transition between formants</span>
kform2    <span class="opc">line</span>    iform2a, itotdur, iform2b
kform3    <span class="opc">line</span>    iform3a, itotdur, iform3b
kform4    <span class="opc">line</span>    iform4a, itotdur, iform4b
kform5    <span class="opc">line</span>    iform5a, itotdur, iform5b
kband1    <span class="opc">line</span>    iband1a, itotdur, iband1b    <span class="comment">;transition of bandwidths</span>
kband2    <span class="opc">line</span>    iband2a, itotdur, iband2b
kband3    <span class="opc">line</span>    iband3a, itotdur, iband3b
kband4    <span class="opc">line</span>    iband4a, itotdur, iband4b
kband5    <span class="opc">line</span>    iband5a, itotdur, iband5b
kamp1    <span class="opc">line</span>    iamp1a, itotdur, iamp1b    <span class="comment">;transition of amplitudes of formants</span>
kamp2    <span class="opc">line</span>    iamp2a, itotdur, iamp2b
kamp3    <span class="opc">line</span>    iamp3a, itotdur, iamp3b
kamp4    <span class="opc">line</span>    iamp4a, itotdur, iamp4b
kamp5    <span class="opc">line</span>    iamp5a, itotdur, iamp5b

<span class="comment">;5 formants for each spectrum</span>
a1    <span class="opc">fof2</span>    kamp1, kfund, kform1, koct, kband1, kris, kdur, kdec, iolaps, ifna, ifnb, itotdur, kphs, kgliss
a2    <span class="opc">fof2</span>    kamp2, kfund, kform2, koct, kband2, kris, kdur, kdec, iolaps, ifna, ifnb, itotdur, kphs, kgliss
a3    <span class="opc">fof2</span>    kamp3, kfund, kform3, koct, kband3, kris, kdur, kdec, iolaps, ifna, ifnb, itotdur, kphs, kgliss
a4    <span class="opc">fof2</span>    kamp4, kfund, kform4, koct, kband4, kris, kdur, kdec, iolaps, ifna, ifnb, itotdur, kphs, kgliss
a5    <span class="opc">fof2</span>    kamp5, kfund, kform5, koct, kband5, kris, kdur, kdec, iolaps, ifna, ifnb, itotdur, kphs, kgliss

aout    <span class="op">=</span>    (a1<span class="op">+</span>a2<span class="op">+</span>a3<span class="op">+</span>a4<span class="op">+</span>a5) <span class="op">*</span> kamp<span class="op">/</span>5    <span class="comment">;sum and scale</span>

aenv <span class="opc">linen</span> 1, 0.05, p3, 0.05  <span class="comment">;to avoid clicking</span>

    <span class="opc">outs</span>    aout<span class="op">*</span>aenv, aout<span class="op">*</span>aenv
    <span class="oblock">endin</span>

<span class="csdtag">&lt;/CsInstruments&gt;</span>
<span class="csdtag">&lt;CsScore&gt;</span>
<span class="stamnt">f</span>1 0 8192 10 1
<span class="stamnt">f</span>2 0 4096 7 0 4096 1

<span class="comment">;****************************************************************</span>
<span class="comment">; tables of formant values adapted from MiscFormants.html</span>
<span class="comment">; 100's: soprano    200's: alto    300's: countertenor        400's: tenor    500's: bass</span>
<span class="comment">; -01: "a" sound    -02: "e" sound    -03: "i" sound    -04: "o" sound    -05: "u" sound</span>
<span class="comment">; p-5 through p-9: frequencies of 5 formants</span>
<span class="comment">; p-10 through p-14: decibel levels of 5 formants</span>
<span class="comment">; p-15 through p-19: bandwidths of 5 formants</span>

<span class="comment">;        formant frequencies            decibel levels                bandwidths</span>
<span class="comment">;soprano</span>
<span class="stamnt">f</span>101 0 16 -2    800      1150      2900      3900      4950     0.001     -6     -32     -20     -50     80     90     120     130     140
<span class="stamnt">f</span>102 0 16 -2    350     2000     2800     3600     4950     0.001     -20     -15     -40     -56     60     100     120     150     200
<span class="stamnt">f</span>103 0 16 -2    270     2140     2950     3900     4950     0.001    -12     -26     -26     -44     60     90     100     120     120
<span class="stamnt">f</span>104 0 16 -2    450     800     2830     3800     4950     0.001    -11     -22     -22     -50     40     80     100     120     120
<span class="stamnt">f</span>105 0 16 -2    325     700     2700     3800     4950     0.001    -16     -35     -40     -60     50     60     170     180     200
<span class="comment">;alto</span>
<span class="stamnt">f</span>201 0 16 -2    800      1150      2800      3500      4950    0.001    -4     -20     -36     -60    80    90     120     130     140
<span class="stamnt">f</span>202 0 16 -2    400      1600      2700      3300      4950    0.001    -24     -30     -35     -60    60     80     120     150     200
<span class="stamnt">f</span>203 0 16 -2     350      1700      2700      3700      4950     0.001    -20     -30     -36     -60     50     100     120     150     200
<span class="stamnt">f</span>204 0 16 -2    450      800      2830      3500      4950     0.001    -9     -16     -28     -55     70     80     100     130     135
<span class="stamnt">f</span>205 0 16 -2    325      700      2530      3500      4950     0.001    -12     -30     -40     -64     50     60     170     180     200
<span class="comment">;countertenor</span>
<span class="stamnt">f</span>301 0 16 -2    660      1120      2750      3000      3350     0.001    -6     -23     -24     -38     80     90     120     130     140
<span class="stamnt">f</span>302 0 16 -2    440     1800     2700     3000     3300     0.001    -14     -18     -20     -20     70     80     100     120     120
<span class="stamnt">f</span>303 0 16 -2    270     1850     2900     3350     3590     0.001    -24     -24     -36     -36     40     90     100     120     120
<span class="stamnt">f</span>304 0 16 -2    430     820     2700     3000     3300     0.001    -10     -26     -22     -34     40     80     100     120     120
<span class="stamnt">f</span>305 0 16 -2    370     630     2750     3000     3400     0.001    -20     -23     -30     -34     40     60     100     120     120
<span class="comment">;tenor</span>
<span class="stamnt">f</span>401 0 16 -2    650      1080      2650      2900      3250     0.001    -6     -7     -8     -22     80     90     120     130     140
<span class="stamnt">f</span>402 0 16 -2    400     1700     2600     3200     3580     0.001    -14     -12     -14     -20     70     80     100     120     120
<span class="stamnt">f</span>403 0 16 -2    290     1870     2800     3250     3540     0.001    -15     -18     -20     -30     40     90     100     120     120
<span class="stamnt">f</span>404 0 16 -2    400     800     2600     2800     3000     0.001    -10     -12     -12     -26     70     80     100     130     135
<span class="stamnt">f</span>405 0 16 -2    350     600     2700     2900     3300     0.001    -20     -17     -14     -26     40     60     100     120     120
<span class="comment">;bass</span>
<span class="stamnt">f</span>501 0 16 -2    600      1040      2250      2450      2750     0.001    -7     -9     -9     -20     60     70     110     120     130
<span class="stamnt">f</span>502 0 16 -2    400      1620      2400      2800      3100     0.001     -12     -9     -12     -18     40     80     100     120     120
<span class="stamnt">f</span>503 0 16 -2    250      1750      2600      3050      3340     0.001    -30     -16     -22     -28     60     90     100     120     120
<span class="stamnt">f</span>504 0 16 -2    400      750      2400      2600      2900    0.001    -11     -21     -20     -40     40     80     100     120     120
<span class="stamnt">f</span>505 0 16 -2    350      600      2400      2675      2950     0.001    -20     -32     -28     -36     40     80     100     120     120
<span class="comment">;****************************************************************</span>

<span class="comment">;    start dur  amp    start freq    end freq    start formant   end formant</span>
<span class="stamnt">i</span>1    0    1    .8        440		412.5		201        203
<span class="stamnt">i</span>1    +    .    .8        412.5		550		201        204
<span class="stamnt">i</span>1    +    .    .8        495		330		202        205

<span class="stamnt">i</span>1    +    .    .8        110		103.125		501        503
<span class="stamnt">i</span>1    +    .    .8        103.125	137.5 		501        504
<span class="stamnt">i</span>1    +    .    .8        123.75	82.5		502        505

<span class="stamnt">i</span>1    7    .    .4        440		412.5		201        203
<span class="stamnt">i</span>1    8    .    .4        412.5		550		201        204
<span class="stamnt">i</span>1    9    .    .4        495		330		202        205
<span class="stamnt">i</span>1    7    .    .4        110		103.125		501        503
<span class="stamnt">i</span>1    8    .    .4        103.125	137.5		501        504
<span class="stamnt">i</span>1    9    .    .4        123.75	82.5		502        505
<span class="stamnt">i</span>1    +    .    .4        440		412.5		101        103
<span class="stamnt">i</span>1    +    .    .4        412.5		550		101        104
<span class="stamnt">i</span>1    +    .    .4        495		330		102        105
<span class="stamnt">e</span>

<span class="csdtag">&lt;/CsScore&gt;</span>
<span class="csdtag">&lt;/CsoundSynthesizer&gt;</span>
</pre>
          </div>
        </div>
        <p><br class="example-break" />
    </p>
      </div>
      <div class="refsect1">
        <a id="idp110160800"></a>
        <h2>See Also</h2>
        <p>
      <a class="link" href="fof.html" title="fof"><em class="citetitle">fof</em></a>
    </p>
      </div>
      <div class="refsect1">
        <a id="idp110162816"></a>
        <h2>Credits</h2>
        <p>
      </p>
        <table border="0" summary="Simple list" class="simplelist">
          <tr>
            <td>Author: Rasmus Ekman</td>
          </tr>
          <tr>
            <td><span class="emphasis"><em>fof2</em></span> is a modification of <span class="emphasis"><em>fof</em></span> by Rasmus Ekman</td>
          </tr>
        </table>
        <p>
    </p>
        <p>New in Csound 3.45</p>
      </div>
    </div>
    <div class="navfooter">
      <hr />
      <table width="100%" summary="Navigation footer">
        <tr>
          <td width="40%" align="left"><a accesskey="p" href="fof.html">Prev</a> </td>
          <td width="20%" align="center">
            <a accesskey="u" href="OpcodesTop.html">Up</a>
          </td>
          <td width="40%" align="right"> <a accesskey="n" href="fofilter.html">Next</a></td>
        </tr>
        <tr>
          <td width="40%" align="left" valign="top">fof </td>
          <td width="20%" align="center">
            <a accesskey="h" href="index.html">Home</a>
          </td>
          <td width="40%" align="right" valign="top"> fofilter</td>
        </tr>
      </table>
    </div>
  </body>
</html>
